草庐IT

Java BoneCP MySQL 连接超时

全部标签

go - HTTP 客户端,空闲超时

如何在GoHTTP客户端中设置空闲超时?空闲超时是指从HTTP客户端内部调用Conn接口(interface)的读/写方法时超时。当客户端下载文件并且在某些时刻由于达到读取超时而导致下载失败时,它会很有用。 最佳答案 您需要创建自己的net.Dialer,它返回一个net.Conn,它设置了适当的读写截止时间。Conn看起来像这样://Connwrapsanet.Conn,andsetsadeadlineforeveryread//andwriteoperation.typeConnstruct{net.ConnReadTimeou

go - smtp.Dial ("ASPMX.L.GOOGLE.COM:25") 连接错误;但是腻子连接有效

使用Go和smtp.Dial时,甚至net.Dial,我收到错误:dialtcp64.233.169.27:25:ConnectExtcp:Aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconnectionfailedbecauseconnectedhosthasfailedtorespond.来自这段代码:mxClient,err:=smtp.Dial("ASPMX.L.GOOGLE.COM:25")iferr!=nil{fmt.

go - 关闭持久连接的正确方法是什么?

我的情况是:连接到Redis的长时间运行的服务器。此服务器等待SIGTERM信号终止。什么是保证在我的应用程序终止后释放连接的正确方法?我知道延迟-真的很棒,但不适用于持久连接,因为我不想为每个操作打开到Redis的连接。谢谢! 最佳答案 如果您想确保一些代码块在退出前执行,您仍然可以使用defer。区别在于它的范围。connection和defer语句的范围应该相同。我不知道您的应用程序是什么,但为了提供一个具体示例,您需要在命令行应用程序的主体中延迟关闭连接,而不是在读取和写入的方法中。你说“因为我不想为每个操作打开与Redis

具有不同超时的 Golang goroutine-safe http 客户端?

假设我有以下功能:funcSendRequest(c*Client,timeouttime.Duration){iftimeout>0{c.Timeout=timeout}else{c.Timeout=defaultTimeout}...}我想允许多个go-routines调用这个函数(共享同一个HTTP客户端),但是这样写显然不能保证goroutine的安全。(同时更改传入的客户端超时也很奇怪......)我不确定执行此操作的最佳方法是什么。我应该为不同的超时使用不同的客户端吗?我应该使用一些互斥量吗?或者一般来说,我如何共享具有不同超时的HTTP客户端?谢谢!

运行 Go 应用程序的多个实例时的 Gorilla websocket 连接

为了保存Gorillawebsocket连接,我可以这样做,其中key可以是userId。connections:=make(map[int]*connection)我正在使用一种叫做supervisord的东西http://supervisord.org/这是一个过程控制系统,因此我能够运行go应用程序在后台作为守护进程。看起来有几个实例正在生成。如果我将其设为全局变量,这些实例是否知道如何访问相同的连接变量?varconnectionsmap[int]*connection还是会有问题?此外,由于map不是线程安全的,我是否应该创建一个结构并添加sync.RWMutex并在检查ke

mysql - 与包共享数据库连接

我刚接触golang。我试图在我的包中共享mysql数据库连接,后者可能在几个包中。为了跳过在每个包中定义数据库连接,我已经创建了数据库包,现在我正在尝试获取该包,连接到数据库并在整个包中使用该对象。我正在使用这个mysql插件:github.com/go-sql-driver/mysql这是我的代码:主.gopackagemainimport("log""./packages/db"//thisismycustomdatabasepackage"database/sql"_"github.com/go-sql-driver/mysql")vardbTypeDatabase.Datab

go - 为什么这个Go程序建立websocket连接失败?

我正在使用这个ip192.168.1.55。我需要向192.168.1.137发送一些数据。我正在使用这段代码packagemainimport("fmt""net/http""os""code.google.com/p/go.net/websocket")funcEcho(ws*websocket.Conn){fmt.Println("Echoing")forn:=0;n但是我的ip没有连接到我上面提到的另一个ip(192.168.1.137)。如何解决这个问题? 最佳答案 给出的处理路径是错误的。您必须定义websocket应该

走。在服务器程序中获取错误 i/o 超时

我编写了简单的服务器程序来从客户端接收数据。我有点不明白有时我从函数中得到错误readtcp4IP:PORTi/otimeoutint,err:=conn.Read([]byte)未超过函数SetDeadline()中设置的事件时间。我展示了我的部分代码,但我认为这就足够了。我接收数据的主循环如下。c:=NewClient()c.kickTime:time.Now()func(c*Client)Listen(){durationToClose:=time.Minute*time.Duration(5),c.conn.SetDeadline(c.kickTime.Add(c.durati

go websocket jsonrpc 浏览器连接关闭

我有一个WebSocketJSON-RPC服务器示例,我想在浏览器中使用它。当你访问“http:localhost:8080”这个URL时,浏览器会正常打开WebSocket连接。但是当浏览器发送WebSocket请求时,服务器关闭了WebSocket连接。我什至看不到在服务器上调用RPC方法的痕迹。但是,从Go客户端调用服务器工作得很好。server.gopackagemainimport("log""net/http""net/rpc""net/rpc/jsonrpc""github.com/gorilla/websocket")typeServicestruct{}func(t*

go - 尝试恢复 Websocket 连接

我正在使用thislibrary.几个小时或一天后,websocket.JSON.Recieve将出错并获得EOF。我再次连接到Web套接字,没有问题,但我一直收到EOF,直到我重新启动我的应用程序。funcgetMessage(ws*websocket.Conn)(mMessage,errerror){err=websocket.JSON.Receive(ws,&m)iferr!=nil{log.Printf("GetMessage-%s-Reconnecting...",err)ws,_=connect(token)//Thisjustdoesadialerr=websocket.